package abstrct;

public class abs {
    public static void main(String[] args)throws Exception {
//new Animal 不能创建实例化,不能独立存在
 Animal a = new Animal.Dog();
        //创建子类对象时,先构建父类对象(父类共性+子类拥有=完整的子类对象)
        // a= 自身类型+所有子类类型
        a.eat();
    }
}
 abstract class Animal{
   //不能独立存在,不能 New对象,不够具体,
    String breed;
    int age;
    String sex;
    public Animal(){
        System.out.println("父类的构造方法");
    }
    //抽象方法:只有方法的声明,没有实现
    public abstract void eat();
    public void sleep(){
        System.out.println("动物在睡");
    }
   public static class Dog extends  Animal{
        //抽象类,可以被子类继承,可以为子类提供共性
        public Dog(){
            super();
            System.out.println("子类的构造方法");
        }
        @Override
        public void eat(){
            System.out.println("狗在吃...");
        }
        public void sleep(){
            System.out.println("动物在睡");
        }
    }
}